/*
 *
 * Copyright (C) 2008 Jose Javier García Zornoza.
 * 
 * Este es un programa libre; puedes distribuirlo y/o modificarlo bajo
 * los términos de la versión 2 (o cualquier versión posterior) de la Licencia 
 * Pública General de la Fundación de Software Libre.
 * Este programa se distribuye con la esperanza  de poder ser útil, pero sin
 * NINGUNA GARANTIA; tampoco la garantía implícita de COMERCIALIZACION o DEDICACIÓN
 * A UN PROPOSITO PARTICULAR. Ver la licencia GNU GPL para más detalles.
 * Deberías haber recibido una copia de la licencia GNU GPL con este programa;
 * en caso contrario puedes obtener una copia visitando el sitio web www.fsf.org
 * o escribiendo a la Fundación de Software Libre, Inc., 59 Temple 
 * Place - Suite 330, Boston, MA  02111-1307, USA. 
 *
 */
package org.gruposp2p.dnie.utils;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class PropertyLoader {
    /*
    public static final String VALIDACION_OCSP = "VALIDACION_OCSP";
    public static final String URL_SERVIDOR_OCSP = "URL_SERVIDOR_OCSP";
    public static final String ACCESO_PROXY = "ACCESO_PROXY";
    public static final String DIRECCION_PROXY = "DIRECCION_PROXY";
    public static final String PUERTO_PROXY = "PUERTO_PROXY";
    public static final String USUARIO_AUTENTICADO = "USUARIO_AUTENTICADO";
    public static final String USUARIO_PROXY = "USUARIO_PROXY";
    public static final String PASSWORD_PROXY = "PASSWORD_PROXY";
    public static final String RUTA_SERVLET = "RUTA_SERVLET";
    public static final String ESTADO_APLICACION = "ESTADO_APLICACION";
    public static final String APLICACION_DESCARGADA = "DESCARGADA";
    public static final String APLICACION_INSTALADA = "INSTALADA";*/

    public static final String PKCS11_DRIVER_PATH = "PKCS11_DRIVER_PATH";

    private static Logger logger = LoggerFactory.getLogger(PropertyLoader.class);    
    
    private static PropertyLoader loader = new PropertyLoader();
    private Properties properties;
    private File propertiesFile;

    private PropertyLoader () {
        try {
            String propertiesPath = FileUtils.PROPERTIES_FILE;
            propertiesFile = new File(propertiesPath);
            propertiesFile.createNewFile();
            properties = new Properties();
            properties.load(new FileInputStream(propertiesFile));
        } catch (IOException ex) {
            logger.error(ex.getMessage(), ex);
        }
    }
    
    public static String getProperty (String key) {
        return loader.properties.getProperty(key);
    }
    
    public static void setProperty (String key, String value) {
        loader.properties.setProperty(key, value);
        save();
    }
    
    private static void save () {
        try {
            FileOutputStream out = new FileOutputStream(loader.propertiesFile);
            loader.properties.store(out, null);
            out.close();
        } catch(Exception ex) {
            logger.error(ex.getMessage(), ex);
        }
    }
    

}
